import java.util.ArrayList;


public class Pessoa
{

	private String nome;
	private int idade;
	private char sexo;
	private Pessoa pai;
	private Pessoa mae;
	private Pessoa conjuge;	
	private ArrayList<Pessoa> filhos;

	public Pessoa( String nome, int idade, char sexo, Pessoa pai, Pessoa mae )
	{
	
		this.nome = nome;
		this.idade = idade;
		this.sexo = sexo;
		this.pai = pai;
		this.mae = mae;
		this.conjuge = null;
		this.filhos = new ArrayList<Pessoa>();

	}

	public void setNome( String nome )
	{
	
		this.nome = nome;
		
	}
	
	public void setIdade( int idade )
	{
	
		this.idade = idade;
		
	}
	
	public void setSexo( char sexo )
	{
	
		this.sexo = sexo;
		
	}

	public String getNome()
	{
	
		return( this.nome );
		
	}
	
	public int getIdade()
	{
	
		return( this.idade );
		
	}
	
	public char getSexo()
	{
	
		return( this.sexo );
		
	}
	
	public Pessoa getPai()
	{
	
		return( this.pai );
		
	}
	
	public Pessoa getMae()
	{
	
		return( this.mae );
		
	}
	
	public ArrayList<Pessoa> getFilhos()
	{
	
		return( this.filhos );
		
	}
	
	public ArrayList<Pessoa> getIrmaos()
	{
	
		int i, j;
		
		ArrayList<Pessoa> irmaos = new ArrayList<Pessoa>();
		
		for( i = 0; i <= this.pai.filhos.size(); i++ )
		{
			
			irmaos.add( i, this.pai.filhos.get( i ) );

		}
		
		for( j = 0; j <= this.mae.filhos.size(); j++ )
		{
			
			if( !( irmaos.contains( this.mae.filhos.get( i ) ) ) )
			{
				
				irmaos.add(this.mae.filhos.get( i ) );

			}

		}

		irmaos.remove( this );
		
		return( irmaos );
		
	}

	public ArrayList<Pessoa> getNetos()
	{
		
		ArrayList<Pessoa> netos = new ArrayList<Pessoa>();
		
		Pessoa pessoa1;
		
		int i = 0, j = 0;
		
		while( i <= this.filhos.size() )
		{
			
			pessoa1 = this.filhos.get( i++ );
			
			while( j <= pessoa1.filhos.size() )
			{
				
				netos.add( pessoa1.filhos.get( j++ ) );
				
			}
			
		}
		
		return( netos );
	
	}
	
	public ArrayList<Pessoa> getTios()
	{
		
		ArrayList<Pessoa> tios = new ArrayList<Pessoa>();
		
	}
	
	public boolean casar( Pessoa conjuge )
	{
	
		if( this.conjuge == null && conjuge.conjuge == null )
		{
		
			if( this.sexo != conjuge.sexo )
			{
			
				if( this.idade >17 && conjuge.idade > 17 )
				{
				
					this.conjuge = conjuge;
					conjuge.conjuge = this;
					return( true );

				}
				
			}
			
		}
		
		return( false );
		
	}

}
